package com.itjin.model.domain.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;

/**
 * 学习资料实体类
 */
@Data
@TableName("learning_materials")
public class LearningMaterial implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 资料ID
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;

    /**
     * 原始文件名
     */
    private String fileName;

    /**
     * 资料标题
     */
    private String title;

    /**
     * 资料简介
     */
    private String description;

    /**
     * 文件存储路径(OSS链接)
     */
    private String filePath;

    /**
     * 文件大小(字节)
     */
    private Long fileSize;

    /**
     * 文件类型(pdf/doc/ppt/jpg等)
     */
    private String fileType;

    /**
     * 所属学院名称
     */
    private String collegeName;

    /**
     * 学科分类
     */
    private String subjectType;

    /**
     * 学年(如2023-2024)
     */
    private String academicYear;

    /**
     * 学期(1-上学期，2-下学期，3-全年)
     */
    private Integer semester;

    /**
     * 上传者ID
     */
    private Integer uploaderId;

    /**
     * 浏览量
     */
    private Integer viewCount;

    /**
     * 下载次数
     */
    private Integer downloadCount;

    /**
     * 审核状态(0-待审核，1-通过，2-拒绝)
     */
    private Integer auditStatus;

    /**
     * 审核时间
     */
    private Date auditTime;

    /**
     * 审核意见
     */
    private String auditReason;

    /**
     * 上传时间
     */
    private Date createTime;

    /**
     * 更新时间
     */
    private Date updateTime;

    /**
     * 是否删除：0-未删除 1-已删除
     */
    @TableLogic
    private Integer isDelete;
}